package manejador;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import persistencia.Conexion;
import entidad.Aula;

import interfaz.IEntidad;
import interfaz.IManejador;

public class ManejadorDeAula implements IManejador {
	private ResultSet rs = null;
	private PreparedStatement stmt = null;
	private static ManejadorDeAula instancia = null;
	private Aula aula = null;
	private List<IEntidad> aulas = null;
	private Conexion conexion = null;

	private ManejadorDeAula() {
		conexion = Conexion.getInstancia();
	}

	public static ManejadorDeAula getInstancia() {
		if (instancia == null) {
			instancia = new ManejadorDeAula();
		}
		return instancia;
	}

	@Override
	public int agregar(IEntidad entidad) {
		int fila = 0;
		aula = (Aula) entidad;
		String sql = "INSERT INTO sistema_informacion.aula VALUES( 0,?, ?);";
		stmt = conexion.hacerEnunciado(sql);
		try {
			stmt.setString(1, aula.getNombre());
			stmt.setString(2, aula.getDescripcion());
			fila = stmt.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return fila;
	}

	@Override
	public int eliminar(int id) {

		return 0;
	}

	@Override
	public List<IEntidad> getEntidad() {
		aulas = new ArrayList<IEntidad>();
		String sql = "SELECT * FROM sistema_informacion.aula;";
		stmt = conexion.hacerEnunciado(sql);
		rs = conexion.hacerConsulta(sql);
		try {
			while (rs.next()) {
				IEntidad aula = new Aula(rs.getInt("id_aula"), rs
						.getString("nombre"), rs.getString("descripcion"));
				aulas.add(aula);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return aulas;
	}

	@Override
	public IEntidad getEntidadPorId(int id) {

		String sql = "SELECT * FROM sistema_informacion.aula WHERE id_aula="
				+ id;
		stmt = conexion.hacerEnunciado(sql);
		rs = conexion.hacerConsulta(sql);
		try {
			while (rs.next()) {
				aula = new Aula(rs.getInt("id_aula"), rs.getString("nombre"),
						rs.getString("descripcion"));

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return aula;
	}

	@Override
	public int modificar(IEntidad entidad, int id) {
		int fila = 0;
		aula = (Aula) entidad;
		String sql = "UPDATE sistema_informacion.aula SET nombre = ? , descripcion = ? WHERE id_aula = ? ;";
		stmt = conexion.hacerEnunciado(sql);
		try {
			stmt.setString(1, aula.getNombre());
			stmt.setString(2, aula.getDescripcion());
			stmt.setInt(3, id);
			fila = stmt.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return fila;
	}

	@Override
	public int agregarEmpleadoConCelular(IEntidad entidad) {
		// TODO Auto-generated method stub
		return 0;
	}

}
